// t347
// 方法一 map 该方法时间复杂度高于o（nlogn）
var topKFrequent = function(nums, k) {
  const map = new Map
  nums.forEach(item => map.set(item, map.get(item) ? map.get(item)+1 : 1))
  const list = Array.from(map).sort((a, b) => b[1]-a[1])
  return list.slice(0, k).map(n => n[0])
};

// 方法二 heap
var topKFrequent = function(nums, k) {
  const map = new Map()
  const heap = new Minheap()
  nums.forEach(item => map.set(item, map.get(item) ? map.get(item)+1 : 1))
  map.forEach((val, key) => {
      heap.insert({ val, key})
      if (heap.size() > k) {
          heap.pop()
      }
  })
  return heap.heap.map(a => a.key)
};